// console.log(666);
const mongoose = require('mongoose');

//连接数据库
mongoose.connect('mongodb://localhost:27017/chunhao');
// console.log(mongoose)

// 创建表结构 

const userSchema = new mongoose.Schema({
    age:Number,   // 数值类型
    name:{
        type:String,   // 字符串类型
        required:true, // 必须传
    },
    score:{
        type:Number,   // 字符串类型
        min:0, 
        max:150
    },
    gender:{
        type:String,
        enum:['男','女','保密'],
        default:'保密'
    },
    createTime:{
        type:Date,
        default:Date.now()
    },
    hobby:Array,
    desc:{
        type:String,
        minlength:0,
        maxlength:200
    }


})

// 创建数据库模型 
const tableModel= mongoose.model('naiqiang',userSchema);
// //存入大量的數據 

// const first = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦';
// const second = '阿斯蒂芬阿斯蒂芬一二三四五六七八九十';
// const gender = ['男','女','保密'];

// function fn(start,end){
//     return Math.floor(Math.random()*Math.abs(end-start+1)+Math.min(start,end));
// }
// for(let i=0;i<1566;i++){
//     const info = {
//         name:first[fn(0,first.length-1)]+second[fn(0,second.length-1)]+second[fn(0,second.length-1)],
//         age:fn(16,35),
//         score:fn(0,150),
//         gender:gender[fn(0,2)],
//         hobby:['抽烟','喝酒','烫头'],
//         desc:'这个人很懒,什么也没留下'
//     }


//     // console.log(info);
//     new tableModel(info).save().then(res=>console.log('成功',res));
// }


// 查看所有的数据 
// 数据模型.find().then(res=>console.log(res)).catch(res=>console.log(res))

// tableModel.find()
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// 数据模型.find({条件})
// tableModel.find({age:{$gte:30}})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// 年龄大于30  并且分数小于60 
// tableModel.find({age:{$gte:30},score:{$lt:60}})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// age>25 && age<35 


// js不要这么写   25<age<35 必须age>25 && age<35 
// tableModel.find({age:{$gt:25,$lt:35}})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// tableModel.find({name:/^王/})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// tableModel.find()
// .skip(10)
// .limit(10)
// .then(res=>console.log(res,res.length))
// .catch(res=>console.log(res))



// tableModel.findOne({score:{$gte:125}})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// tableModel.findById('648a831332411c2b78e025ff')
// .then(res=>console.log(res))
// .catch(res=>console.log(res))



// 修改 删除  

// 修改1个
// 数据模型.updateOne({条件},{更新后的数据})
// tableModel.updateOne({name:'孔阿三'},{age:89,score:66})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// tableModel.findById('648a831332411c2b78e025ff')
// .then(res=>console.log(res))
// .catch(res=>console.log(res))
// 修改一批 
// 数据模型.updateMany({条件},{更新后的数据})
// tableModel.updateMany({age:25},{score:99})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// tableModel.find({age:25})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))
// 查询并修改  
// 数据模型.findByIdAndUpdate(id,{修改后的内容});

// tableModel.findByIdAndUpdate('648a831332411c2b78e025ff',{
//     name:'jack666'
// })
// .then(res=>console.log(res))
// .catch(res=>console.log(res))



// tableModel.findById('648a831332411c2b78e025ff')
// .then(res=>console.log(res))
// .catch(res=>console.log(res))
// 删除一个
// 数据模型.deleteOne({条件});
// tableModel.find().count()
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// tableModel.deleteOne({name:'许斯芬'})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// tableModel.find().count()
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// tableModel.findOne({name:'杨九斯'})
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// 删除一批 
// 数据模型.deleteMany({条件});


// tableModel.find().count()
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// // 不写条件 全部删除 
// tableModel.deleteMany({age:25}) 
// .then(res=>console.log(res))
// .catch(res=>console.log(res))


// tableModel.find().count()
// .then(res=>console.log(res))
// .catch(res=>console.log(res))
// 查询并删除 
// 数据模型.findByIdAndDelete(id);
// tableModel.findByIdAndDelete('648a831804a49e07502c0aa3')
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

// tableModel.find().count()
// .then(res=>console.log(res))
// .catch(res=>console.log(res))

